package homework.xuluoxi;

/*
 * 作业名称：斗地主（非完整）
 * 作业功能：实现简易斗地主部分功能
 * 分　　类：卡牌集合部分
 * 学　　员：徐罗希
 * 版　　本：V1.0
 * 备　　注：模块三作业
 */

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class CardList {

    // 1、定义成员变量
    private List<Card> cardList = new ArrayList<>();

    // 2、构造方法、get方法
    public CardList() {}

    public List<Card> getCardList() {
        return cardList;
    }

    // 3、准备扑克牌集合的方法
    public void cardListReady() {
        Card[] c = Card.cardReady();
        for (int i = 0; i <= 53; i ++) {
            cardList.add(c[i]);
        }
    }

    // 4、扑克牌洗牌的方法
    public void cardShuffle() {
        Collections.shuffle(cardList);
    }

    // 5、扑克牌排序方法
    public static ArrayList<Card> cardSort(ArrayList<Card> a) {
        CardList cardList = new CardList();
        cardList.cardListReady();
        ArrayList<Card> sortAL = new ArrayList<>();
        for (Card c1 : cardList.getCardList()) {
            for (Card c2 : a) {
                if (c1.getType().getTypeLevel() == c2.getType().getTypeLevel() && c1.getNumber().getNumberLevel() == c2.getNumber().getNumberLevel()) {
                    sortAL.add(c1);
                }
            }
        }
        return sortAL;
    }

    // 6、动态展示玩家扑克牌的方法
    public static void showPlayCard (Player p) {
        int count = 1;
        System.out.print(p.getName() + ":");
        if (p.getPlayList().size() == 0) {
            System.out.println("");
        }
        for (Card c : p.getPlayList()) {
            if(count == p.getPlayList().size()) {
                c.cardShow();
                System.out.println("");
            }
            else {
                c.cardShow();
                System.out.print(",");
                count ++;
            }
        }
    }

    public static void showPlayCard (ArrayList<Card> a) {
        int count = 1;
        for (Card c : a) {
            c.cardShow();
            if (count == a.size()) {
                System.out.println("");
            }
            else {
                System.out.print(",");
                count ++;
            }
        }
    }
}
